package com.itic.mall.system.goods.goodscategory.persistence.dao;

import java.util.List;
import java.util.Map;

import com.itic.appbase.framework.common.annotation.IticDBDao;
import com.itic.appbase.framework.common.persistence.dao.CrudDao;
import com.itic.mall.system.goods.goodscategory.persistence.basedao.GoodsCategoryMapper;
import com.itic.mall.system.goods.goodscategory.persistence.model.GoodsCategory;
import com.itic.mall.system.goods.goodscategory.persistence.model.GoodsCategoryExample;


@IticDBDao
public interface GoodsCategoryDao
     extends GoodsCategoryMapper,CrudDao<GoodsCategory,GoodsCategoryExample> {
	
    /**
     * 查询组织机构树
     * 
     * @param queryOrg
     * @return
     */
    List<GoodsCategory> selectGoodsCategoryTree(GoodsCategory queryGoodsCategory);

    /**
     * 根据id删除组织机构树
     * 
     * @param paramMap[id: 主键; dbTrue: 数据库有效标识; dbFalse: 数据库无效标识]
     * @return
     */
    int deleteGoodsCategoryTree(Map<String, String> paramMap);

    /**
     * 根据组织机构code查询组织机构
     * 
     * @param org [code: 组织机构码; isEffective: 有效标识]
     * @return
     */
    GoodsCategory selectGoodsCategoryByCode(GoodsCategory GoodsCategory);
    
    /**
     * 根据父类id查询最大的orgCade     
     * 
     * @author 王文鑫
     * @date 2018年1月5日 下午3:40:46
     * @param pid
     * @return
     */
     String getMaxCodeByPid(String pId1);
     
     /**
      * 根据categoryId 获取 CodeId
      * @author 王文鑫
      * @date 2018年1月19日 下午3:18:43
      * @param pId1
      * @return
      */
     String getCodeIdByCategoryId(String categoryId);
     
     /**
      * 根据codeId获取商品分类
      * @author 王文鑫
      * @date 2018年1月21日 下午1:31:05
      * @param categoryId
      * @return
      */
     GoodsCategory getGoodsCategoryByCodeId(String categoryId);
     
     /**
      * 根据商品分类id查询商品总数
      * @author 王文鑫
      * @date 2018年1月7日 下午3:49:37
      * @param categoryId
      * @return
      */
     int getGoodsNumByCategoryId(String orgCode);
     
     /**
      * 根据父类codeId获取所有子分类
      * @author 王文鑫
      * @date 2018年1月15日 下午4:52:54
      * @param codeId
      * @return
      */
     List<GoodsCategory> getCategoryBycodeId(String codeId);
    
}